home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc Development Framework / ODFDev / ODF / Framewrk / FWPart / Include / FWSOMIte.h < prev    next >
Encoding:
Text File  |  1996-04-25  |  5.0 KB  |  152 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWSOMIte.h
  4. //    Release Version:    $ ODF 1 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #define SOM_Module_somiter_Source
  11. #include "SOMIter.xih"
  12.  
  13. #ifndef FWPRTITE_H
  14. #include "FWPrtIte.h"
  15. #endif
  16.  
  17. #ifndef FWEXCDEF_H
  18. #include "FWExcDef.h"
  19. #endif
  20.  
  21. #ifndef SOM_Module_OpenDoc_Errors_defined
  22. #include "ErrorDef.xh"
  23. #endif
  24.  
  25. #define FW_SOMITERATOR(ModuleName, PartName) \
  26. \
  27. /*---------------------------------------------------------------------------------------- \
  28.     somInit \
  29. ----------------------------------------------------------------------------------------*/ \
  30. SOM_Scope void  SOMLINK PartName##EmbeddedFramesIteratorsomInit(ModuleName##_##PartName##EmbeddedFramesIterator *somSelf) \
  31. { \
  32.     ModuleName##_##PartName##EmbeddedFramesIteratorData *somThis = ModuleName##_##PartName##EmbeddedFramesIteratorGetData(somSelf); \
  33.     ModuleName##_##PartName##EmbeddedFramesIterator_parent_ODEmbeddedFramesIterator_somInit(somSelf); \
  34.     somThis->fFrameworkIter = NULL; \
  35. } \
  36.  \
  37. /*---------------------------------------------------------------------------------------- \
  38.     InitIterator \
  39. ----------------------------------------------------------------------------------------*/ \
  40. SOM_Scope void  SOMLINK PartName##EmbeddedFramesIteratorInitIterator(ModuleName##_##PartName##EmbeddedFramesIterator *somSelf, Environment *ev, \
  41.         FW_CEmbeddingPart* part, FW_CEmbeddingFrame* frame) \
  42. { \
  43.     ModuleName##_##PartName##EmbeddedFramesIteratorData *somThis = ModuleName##_##PartName##EmbeddedFramesIteratorGetData(somSelf); \
  44.  \
  45.     FW_TRY \
  46.     {\
  47.         somThis->fFrameworkIter = FW_NEW(FW_CPartEmbeddedFrameIterator, (ev, part, frame)); \
  48.     }\
  49.     FW_CATCH_BEGIN\
  50.     FW_CATCH_REFERENCE(FW_XException, exception)\
  51.     {\
  52.         FW_SetException(ev, exception);\
  53.     }\
  54.     FW_CATCH_EVERYTHING()\
  55.     {\
  56.         FW_SetEvError(ev, kODErrUndefined);\
  57.     }\
  58.     FW_CATCH_END\
  59. } \
  60.  \
  61. /*---------------------------------------------------------------------------------------- \
  62.     somUninit \
  63. ----------------------------------------------------------------------------------------*/ \
  64. SOM_Scope void  SOMLINK PartName##EmbeddedFramesIteratorsomUninit(ModuleName##_##PartName##EmbeddedFramesIterator *somSelf) \
  65. { \
  66.     ModuleName##_##PartName##EmbeddedFramesIteratorData *somThis = ModuleName##_##PartName##EmbeddedFramesIteratorGetData(somSelf); \
  67.  \
  68.      delete somThis->fFrameworkIter; \
  69.        ModuleName##_##PartName##EmbeddedFramesIterator_parent_ODEmbeddedFramesIterator_somUninit(somSelf); \
  70. } \
  71.  \
  72. /*---------------------------------------------------------------------------------------- \
  73.     First \
  74. ----------------------------------------------------------------------------------------*/ \
  75. SOM_Scope ODFrame*  SOMLINK PartName##EmbeddedFramesIteratorFirst(ModuleName##_##PartName##EmbeddedFramesIterator *somSelf, Environment *ev) \
  76. { \
  77.     ModuleName##_##PartName##EmbeddedFramesIteratorData *somThis = ModuleName##_##PartName##EmbeddedFramesIteratorGetData(somSelf); \
  78.  \
  79.      ODFrame* odFrame = NULL;\
  80.  \
  81.     FW_TRY \
  82.     {\
  83.         odFrame = somThis->fFrameworkIter->First(ev); \
  84.     }\
  85.     FW_CATCH_BEGIN\
  86.     FW_CATCH_REFERENCE(FW_XException, exception)\
  87.     {\
  88.         FW_SetException(ev, exception);\
  89.     }\
  90.     FW_CATCH_EVERYTHING()\
  91.     {\
  92.         FW_SetEvError(ev, kODErrUndefined);\
  93.     }\
  94.     FW_CATCH_END\
  95. \
  96.     return odFrame; \
  97. } \
  98.  \
  99. /*---------------------------------------------------------------------------------------- \
  100.     Next \
  101. ----------------------------------------------------------------------------------------*/ \
  102. SOM_Scope ODFrame*  SOMLINK PartName##EmbeddedFramesIteratorNext(ModuleName##_##PartName##EmbeddedFramesIterator *somSelf, Environment *ev) \
  103. { \
  104.     ModuleName##_##PartName##EmbeddedFramesIteratorData *somThis = ModuleName##_##PartName##EmbeddedFramesIteratorGetData(somSelf); \
  105.  \
  106.      ODFrame* odFrame = NULL;\
  107.  \
  108.     FW_TRY \
  109.     {\
  110.         odFrame = somThis->fFrameworkIter->Next(ev); \
  111.     }\
  112.     FW_CATCH_BEGIN\
  113.     FW_CATCH_REFERENCE(FW_XException, exception)\
  114.     {\
  115.         FW_SetException(ev, exception);\
  116.     }\
  117.     FW_CATCH_EVERYTHING()\
  118.     {\
  119.         FW_SetEvError(ev, kODErrUndefined);\
  120.     }\
  121.     FW_CATCH_END\
  122. \
  123.     return odFrame; \
  124. } \
  125.  \
  126. /*---------------------------------------------------------------------------------------- \
  127.     IsNotComplete \
  128. ----------------------------------------------------------------------------------------*/ \
  129. SOM_Scope ODBoolean  SOMLINK PartName##EmbeddedFramesIteratorIsNotComplete(ModuleName##_##PartName##EmbeddedFramesIterator *somSelf, Environment *ev) \
  130. { \
  131.     ModuleName##_##PartName##EmbeddedFramesIteratorData *somThis = ModuleName##_##PartName##EmbeddedFramesIteratorGetData(somSelf); \
  132.  \
  133.      ODBoolean result = FALSE;\
  134.  \
  135.     FW_TRY \
  136.     {\
  137.         result = somThis->fFrameworkIter->IsNotComplete(ev); \
  138.     }\
  139.     FW_CATCH_BEGIN\
  140.     FW_CATCH_REFERENCE(FW_XException, exception)\
  141.     {\
  142.         FW_SetException(ev, exception);\
  143.     }\
  144.     FW_CATCH_EVERYTHING()\
  145.     {\
  146.         FW_SetEvError(ev, kODErrUndefined);\
  147.     }\
  148.     FW_CATCH_END\
  149. \
  150.     return result; \
  151. } \
  152.